for (let i=1; i<=5; i++) { 
    // 是的，闭包的块作用域！
    setTimeout( function timer() { 
    console.log( i ); 
    }, i*1000 ); 
   }
   function CoolM(){
       var some='cool';
       var another=[1,2,3];
       function dosome(){
           console.log(some);
       }
       function doAnother(){
           console.log(another.join('!'))
       }
return {
    dosome:dosome,
    doAnother:doAnother
}
   }
   var foo=CoolM();
   foo.dosome();
   foo.doAnother();
   function coolmodule(id){
       function identify(){
           console.log(id);
       }
       return{
           identify:identify//可以将这个对象返回值看作本质上模块的公共API
           
        };
   }
   var foo1=coolmodule('fool 1');
   var foo2=coolmodule('fool 2');
   foo1.identify();
   foo2.identify();